package com.springboot.common.lock;

import java.util.concurrent.TimeUnit;

/**
 * 锁接口
 *
 * @author supu
 * @date 2019-03-22 11:02
 **/
public interface Lock {
    /**
     * 加锁，没有带超时时间
     *
     * @throws Exception
     */
    void lock() throws Exception;

    /**
     * 带超时时间的加锁
     *
     * @param time     超时时间
     * @param timeUnit 时间单位
     * @return
     * @throws Exception
     */
    boolean tryLock(long time, TimeUnit timeUnit) throws Exception;

    /**
     * 释放锁
     *
     * @throws Exception
     */
    void unLock() throws Exception;
}
